unit clsPais;

interface

uses Dm, dbtables, biblio;

type
  TPais = class(TObject)
  private
    Pais_Codigo: string;
  public
    Pais_Nome: string;
    Pais_DDI: string;
    Pais_CodIBGE: String;
    function Gravar(p_Pais_Codigo: string): Byte;
    function Recuperar(p_Pais_Codigo: string): Byte;
    function Excluir(p_Pais_Codigo: string): Byte;
    procedure Consultar(var p_q: TQuery; p_nome: string);
  end;

implementation

function TPais.Gravar;
var
  tq: TQuery;
begin
  tq := Tquery.Create(DmInt);
  tq.databasename := dmint.Db.DatabaseName;
  tq.active := False;
  tq.sql.clear;
  tq.params.clear;
  tq.sql.add('SELECT * FROM Pais where Pais_Codigo=:k_Pais_Codigo');
  tq.parambyname('k_Pais_Codigo').asstring := strzero(p_Pais_Codigo, 2);
  tq.open;
  if tq.eof then begin
    tq.sql.clear;
    tq.params.clear;
    tq.sql.add('INSERT INTO Pais VALUES(:k_Pais_Codigo,:k_Pais_Nome,:k_Pais_DDI, :k_Pais_CodIBGE)');
  end else begin
    tq.sql.clear;
    tq.params.clear;
    tq.sql.add('UPDATE Pais SET Pais_Nome=:k_Pais_Nome,Pais_DDI=:k_Pais_DDI, Pais_CodIBGE=:k_Pais_CodIBGE WHERE Pais_Codigo=:k_Pais_Codigo');
  end;
  tq.parambyname('k_Pais_Codigo').asstring := strzero(p_Pais_Codigo, 2);
  tq.parambyname('k_Pais_Nome').asstring := Pais_Nome;
  tq.parambyname('k_Pais_DDI').asstring := Pais_DDI;
  tq.parambyname('k_Pais_CodIBGE').asstring:= Pais_CodIBGE;
  tq.close;
  tq.execsql;
  result := 1;
  tq.close;
  tq.Free;
end;

function TPais.Recuperar;
var
  tq: TQuery;
begin
  tq := Tquery.Create(dmint);
  tq.databasename := DmInt.Db.DatabaseName;
  tq.active := False;
  tq.sql.clear;
  tq.sql.add('SELECT * FROM Pais where Pais_Codigo=:k_Pais_Codigo');
  tq.Params[0].asstring := strzero(p_Pais_Codigo, 2);
  tq.open;
  Pais_Codigo := p_Pais_Codigo;
  if tq.eof then begin
    Pais_Nome := '';
    Pais_DDI := '';
    Pais_CodIBGE:= '';
    Result := 0;
  end else begin
    Pais_Nome := tq.fieldbyname('Pais_Nome').asstring;
    Pais_DDI := tq.fieldbyname('Pais_DDI').asstring;
    Pais_CodIBGE:= tq.FieldByName('Pais_CodIBGE').AsString;
    Result := 1;
  end;
  tq.Close;
  tq.Free;
end;

function TPais.Excluir;
var
  tq: TQuery;
begin
  tq := Tquery.Create(dmint);
  tq.databasename := dmint.db.databasename;
  tq.active := False;
  tq.close;
  tq.sql.Clear;
  tq.params.clear;
  tq.sql.add('DELETE FROM Pais WHERE Pais_Codigo=:k_Pais_Codigo');
  tq.parambyname('k_Pais_Codigo').asstring := strzero(p_Pais_Codigo, 2);
  tq.execSQL;
  Result := 1;
  tq.close;
  tq.Free;
end;

procedure TPais.Consultar;
begin
  p_q.sql.Clear;
  p_q.Params.Clear;
  p_q.sql.add('Select * from Pais where Pais_Nome>=:k_Pais_Nome order by Pais_Nome');
  p_q.parambyname('k_Pais_Nome').asstring := p_nome;
end;

end.
